#pragma once
#ifndef AIR_BAG_H
#define AIR_BAG_H

#include "Arduino.h"

#define AIRBAG_1 5
#define AIRBAG_2 6
#define AIRBAG_3 7
#define AIR_OUTPUT 4

#define PILLOW_LEFT 47
#define PILLOW_MIDDLE 45
#define PILLOW_RIGHT 43
#define SNORE_INPUT 49

//压感位置数量
#define POSITION_NUMBER 3

//压力输入
void pressInput();

//鼾声输入
void snoreInput();
void snoreInput(bool snore_input);

void initAirBag();

void printMessage();

//串口指令控制
//当input = 1，表示枕在左边发出鼾声
//当input = 2，表示枕在中间发出鼾声
//当input = 3，表示枕在右边发出鼾声
//当input = 4，表示无鼾声
//当input = 5，表示无压感
void inputControl(int input);

//止鼾逻辑
void airbagControl();

//止鼾逻辑
void airbagControl(const int PID[3], bool predict);

void updateAirBagStatus();

//设置气囊状态
void setAirBag(int left, int middle, int right, bool isAerate);

void clearPressInput();

//是否有压力
int isPress(const int PID[3]);

//当前压感状态是否与上次压感状态相同
int isPressSame();

//是否有气囊为满气状态
int isAirbagFill();

//气泵控制
void aerate(bool isAerate);

#endif // MEMORY_H